package jukebox.model.freeboard;

import java.util.List;

import javax.annotation.Resource;

import jukebox.model.common.BoardVO;
import jukebox.model.common.PagingBean;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.stereotype.Repository;

@Repository
public class FreeBoardDAOImpl implements FreeBoardDAO {
	@Resource(name="sqlSessionTemplate")
	private SqlSessionTemplate sqlSessionTemplate;

	/**
	* @method : writeContent
	* @author : 조서영
	* @since : 2014-06-23
	* @param : bvo 
	* @return : void
	* @comment : 자유게시판 글 작성
	*/
	@Override
	public void freeWriteContent(BoardVO bvo) {
		sqlSessionTemplate.insert("freeboard.freeWriteContent",bvo);
	}
	/**
	* @method : findContentByNo
	* @author : 조서영
	* @since : 2014-06-24
	* @param :  no-게시글 번호
	* @return :  BoardVO
	* @comment : 자유게시판에서 게시글 선택시 상세 게시글 보기 
	*/
	@Override
	public BoardVO freeFindContentByNo(int no) {
		// TODO Auto-generated method stub
		return sqlSessionTemplate.selectOne("freeboard.freeFindContentByNo",no);
	}

	/**
	* @method : updateContent
	* @author : 조서영
	* @since : 2014-06-24
	* @param : bvo 
	* @return : void
	* @comment : 자유게시판 글 수정
	*/
	@Override
	public void freeUdateContent(BoardVO bvo) {
		sqlSessionTemplate.update("freeboard.freeUdateContent",bvo);
	}
	/**
	* @method : deleteContent
	* @author : 조서영
	* @since : 2014-06-24
	* @param : no - 게시판 글 번호 
	* @return : void
	* @comment : 자유게시판 글 삭제
	*/
	@Override
	public void freeDeleteContent(int no) {
		sqlSessionTemplate.delete("freeboard.freeDeleteContent",no);
	}
	
	/**
	* @method : freeContentCountByTitle
	* @author : 조서영
	* @since : 2014-06-25
	* @param :  title
	* @return : int
	* @comment : 제목으로 검색된 게시물 수 
	*/
	@Override
	public int freeContentCountByTitle(String title) {
		return sqlSessionTemplate.selectOne("freeboard.freeContentCountByTitle",title);
	}
	/**
	* @method : getContentListPerPage
	* @author : 조서영
	* @since : 2014-06-23
	* @param :  pagingBean
	* @return :  List<BoardVO>
	* @comment : page에 해당하는 게시물들을 조회
	*/
	@Override
	public List<BoardVO> getContentListPerPage(PagingBean pb) {
		return sqlSessionTemplate.selectList("freeboard.getContentListPerPage", pb);
	}
	/**
	* @method : getContentListByTitlePerPage
	* @author : 조서영
	* @since : 2014-06-23
	* @param :  pagingBean
	* @return :  List<BoardVO>
	* @comment : page에 해당하는 검색된 게시물들을 조회
	*/
	@Override
	public List<BoardVO> getContentListByTitlePerPage(PagingBean pb) {
		return sqlSessionTemplate.selectList("freeboard.getContentListByTitlePerPage",pb);
	}
	
	
	/**
	* @method : UpdateHit
	* @author : 조서영
	* @since : 2014-06-24
	* @param :  no
	* @return :  
	* @comment : 조회수 증가
	*/
	@Override
	public void freeUpdateHit(int no) {
		sqlSessionTemplate.selectOne("freeboard.freeUpdateHit",no);		
	}
	/**
	* @method : freeContentCount
	* @author : 조서영
	* @since : 2014-06-24
	* @param : 
	* @return :  
	* @comment : 전체 게시물 수
	*/
	@Override
	public int freeContentCount() {
		// TODO Auto-generated method stub
		return sqlSessionTemplate.selectOne("freeboard.freeContentCount");
	}

}
